This section is a general (non-Linux-specific) introduction to Java and HotJava.
Java is a network-aware language superficially resembling C++, but much smaller and more compact and cleanly designed. It's an unlimited-extent language with garbage collection like Lisp, but with static type checking (it's been aptly described as "Smalltalk with sane syntax"). It includes lightweight processes (threads) as a native facility and has powerful network-security features. So far, its major application is the HotJava browser, but it holds considerable promise as a general-purpose application language.
HotJava is a WWW browser written in Java. Its major advance over other browsers is that it knows about a new HTML construct called an APPLET, which is some Java class that executes on the client machine. Thus, WWW documents written with Java in mind can have "live" code objects embedded in them, as opposed to just data.
The ability to safely pass around code objects probably represents the most significant advance in WWW technology since the first release of Mosaic. At minimum, it delivers an extensible Web browser that won't need perpetual upgrading to handle new image formats and tag types.
Java and HotJava were developed at Sun Microsystems by a team headed by James Gosling (well known as the designer of Gosling Emacs and NeWS).
The last time Sun tried to set a major technical standard was NeWS, its Network Window System. Though NeWS was pretty universally conceded to be technically superior to X, X won because its sources were freely redistributable. Sun learned from this mistake, and has made Java/HotJava much more generally available; the sources can be downloaded under a fairly relaxed license (see Java as Freely Redistributable Software ). Sun is encouraging ports to non-Sun environments.
Netscape now interprets Java. Microsoft licensed the technology in early December 1995. So it appears that Java support will probably become universal in 1996.
Java used to be called Oak. HotJava was once known as WebRunner.
On December 12 1995 Sun released the `Beta 2' version of Java. The Java environment API defining its access to the host OS and windowing system has allegedly been semi-frozen -- it may be extended, but won't be incompatibly changed.
The 1.0 version of this FAQ is being issued along with the beta 1.0 Java Developer's Kit (JDK) for Linux, ported by Randy Chapman.
Significant holes are known to exist in the Java security implementation. It is not yet a good idea to use Java for sensitive applications. These problems are expected to be fixed in the production (post-beta) releases.
Sun maintains an extensive HTML web of Java and HotJava-related documents at http://java.sun.com . These documents are mirrored at http://java.blackdown.com and elsewhere; see Sun's list of mirror sites.
SunSoft Press's official series of Java books is in the production pipeline at Addison-Wesley. Some details about these can be found in the comp.lang.java FAQ .
Several Java early-adopters have recommended "Hooked on Java" by the members of the Java team. "Well written, though I'd appreciate something less basic" was one comment.
O'Reilly Associates is working on its own series of Java books in cooperation with Sun. These will include (at least) a "Nutshell Guide To Java", a language reference, a class library reference, and a book on the underlying byte-code virtual machine. (Full-disclosure statement: Your HOWTO editor has been invited by O'Reilly Associates to serve as primary technical reviewer for this series, and is being paid for that work.)
SAMS has a book called "Learning Java in 21 Days". No revieww yet.
One of our contributors, browsing his local Bookstop/Barnes & Noble/Borders, came up with 3 books already out:
Dave Dittrich writes: I'd say that "Java in 60 minutes" may take you 60 minutes to read, but won't teach you how to program in Java in 60 minutes (surprise, surprise!) It looks to me like "Java in 60 minutes" is one of the many attempts be first to market with a book on a hot topic. It didn't seem to include much more than you can find right now on the Web, including lots of text that looks like it was lifted straight out of the Java Language Specification (http://java.sun.com/JDK-beta2/psfiles/javaspec.ps).
Dave continues: Same thing with "Java!", only the latter goes into much more detail on object oriented programming concepts, etc. Someone pointed me to another text book that is equally as good at covering data/method abstraction and other object oriented programming concepts, which is "Structure and Interpretation of Computer Programs" by Abelson, Sussman and Sussman (MIT Press).
Final caveat: at this point (January 1996), it is probly a good idea to stay away from the Ritchey book or anything else based on the alpha API. The beta API is substantially different, and the soon-to-be-released Java 1.0 will have its own differences.
WWW archives of applets are available at the following locations:
Pointers to others may be available in the comp.lang.java FAQ .
Next Chapter, Previous Chapter
Table of contents of this chapter, General table of contents
Top of the document, Beginning of this Chapter